The present invention relates generally to high speed network communications, and more specifically to the prioritized delivery of data packets from a network switch over a broadband communications network.
In recent years, there has been an increasing need for systems and methods of efficiently delivering data packets over computer and communications networks to enforce specified data packet transmission rates and quality of service (QoS) objectives. A typical QoS objective of such systems is to deliver high priority data packets over a communications network before or more efficiently than medium or low priority data packets. For example, high priority data packets may correspond to data flows involving voice over Internet protocol (VoIP) or Internet protocol television (IPTV), medium priority data packets may correspond to data flows for providing mail or newsgroup services, and low priority data packets may correspond to data flows generated for peer-to-peer (P2P) file sharing. Because missing or delayed delivery of data packets from data flows involving VoIP or IPTV can significantly degrade the quality of these service applications, such data packets are generally given a higher priority over those included in mail, news, or file transmissions, in which the effects of missing or delayed data packets are often imperceptible to a human operator.
To achieve such enforcement of data packet transmission rates and QoS objectives, a number of traffic shaping and prioritization techniques have been developed. For example, one conventional prioritization technique is known as “round robin queuing”, which employs a set of queues or buffers for temporarily storing data packets before the packets are delivered over a communications network. For example, the set of queues may include a high priority queue for storing high priority data packets, a medium priority queue for storing medium priority data packets, and a low priority queue for storing low priority data packets. The round robin queuing technique typically employs an algorithm to determine the level of priority of each data packet, and the queue to which the data packet should be assigned. Further, at least one meter such as a token bucket may be employed to assure that the data packets assigned to one or more of the queues conform to the requirements of a specified constant or variable bit-rate service. After the respective data packets are assigned to the high priority, medium priority, and low priority queues, a predetermined number of data packets are delivered over the network from the high priority queue, and, in a descending order of priority, the same number of data packets is delivered over the network from each of the medium and low priority queues in a round robin fashion. When the predetermined number of data packets has been delivered over the network from each of the high priority, medium priority, and low priority queues, the process of delivering data packets over the network repeats, starting again with the highest priority queue.
Another conventional prioritization technique is known as “weighted round robin queuing”. Whereas the round robin queuing technique described above typically delivers the same number of data packets over a communications network from each of the high, medium, and low priority queues and therefore services each of the queues at substantially the same rate, the weighted round robin queuing technique services the higher priority queues more frequently than the lower priority queues, thereby increasing the likelihood that the QoS objectives of the higher priority data packets will be met. For example, the weighted round robin queuing technique may be employed to deliver a larger predetermined number of data packets over the network from the high priority queue, and, in a descending order of priority, subsequently deliver a smaller predetermined number of data packets from the medium and low priority queues in a round robin fashion. When the predetermined numbers of data packets have been delivered over the network from the high priority, medium priority, and low priority queues, the process of delivering data packets over the network repeats, starting again from the highest priority queue. For example, each of the round robin queuing techniques described above may be implemented in a network element or switch coupled to a communications network and configured to perform data packet transmission over the network.
Although the conventional prioritization techniques described above have been used to provide prioritized delivery of data packets over computer and communications networks, such conventional prioritization techniques have drawbacks when employed in conjunction with high speed broadband communications networks configured to handle high bandwidth service applications such as VoIP and IPTV. For example, the prioritized queuing of data packets that occurs in each of the conventional round robin queuing techniques described above may induce unwanted latency in the transmission of high priority data packets for providing VoIP and IPTV service applications. In addition, because network service providers typically have numerous subscribers and often require many levels of priority to handle the various types of service applications that they provide to their subscribers, the number of queues or buffers required to implement the conventional round robin queuing techniques can be high, thereby significantly increasing the cost of the switch implementing these prioritization techniques.
It would therefore be desirable to have an improved system and method of providing high speed, prioritized delivery of data packets over broadband communications networks that avoids the drawbacks of conventional data traffic shaping and prioritization techniques.